package com.zbkj.service.manager;


import com.zbkj.dal.base.enums.ExpressOrderPayMethodType;
import com.zbkj.dal.base.enums.ExpressOrderType;
import com.zbkj.service.model.dto.express.CreateExpressDTO;

import java.time.LocalDateTime;
import java.util.Collection;

public interface ExpressManager {

    /**
     * 创建物流订单， 适用于，向用户发货场景：购买订单，承享发出订单，供享退回订单
     *
     * @param orderId          贝贝奢护订单号
     * @param payMethodType    支付方式
     * @param expressOrderType 订单物流类型
     * @return 物流结果
     */
    CreateExpressDTO createExpressOrder(String orderId, String productName, ExpressOrderPayMethodType payMethodType, ExpressOrderType expressOrderType);

    /**
     * 创建物流订单， 适用于，向用户收件的场景： 承享收回，供享收件
     *
     * @param orderId          贝贝奢护订单号
     * @param payMethodType    支付方式
     * @param expressOrderType 物流订单类型
     * @return 物流结果
     */
    CreateExpressDTO createExpressOrderWithPickupCode(String orderId, String productName, LocalDateTime pickupTime, ExpressOrderPayMethodType payMethodType, ExpressOrderType expressOrderType);

    void printWayBills(Collection<String> expressNumber);
}
